# 递归（Recursion）是编程中一种函数自我调用的方法，通过不断将问题分解为更小的子问题来解决复杂任务。它的核心思想在于：函数在执行过程中调用自身，直到满足某个终止条件。
import os
def get_files_recursion_from_dir(path):
    """
    从指定的文件夹中使用递归的方式，获取全部文件列表
    :param path: 被判断的文件夹
    :return: list 包含全部的文件，如果目录不存在或无文件返回空list
    """
    file_list = []
    if os.path.exists(path):  # os.path.exists,判断指定路径是否存在
        for i in os.listdir(path):  # os.listdir,列出路径下的内容
            new_path = path + "/" + i
            if os.path.isdir(new_path):  # os.path.isdir,判断指定路径是不是文件夹
                file_list += get_files_recursion_from_dir(new_path)
            else:
                file_list.append(new_path)
    else:
        print(f"指定的目录{path}，不存在")
        return []
    return file_list
if __name__ == '__main__':
    print(get_files_recursion_from_dir("C:/gitcode"))
